package com.ruoyi.crm.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseFlowEntity;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 工单列表对象 crm_task
 * 
 * @author 最帅的陈彬彬
 * @date 2024-12-07
 */
@Getter
@Setter
public class CrmTask extends BaseFlowEntity {
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    /** 地区 */
    @Excel(name = "地区")
    private String region;

    /** 客户ID */
    @Excel(name = "客户ID")
    private String customerId;

    /** 商机订单ID */
    @Excel(name = "商机订单ID")
    private String orderId;

    /** 工单类型 */
    @Excel(name = "工单类型")
    private String taskType;

    /** 联系方式 */
    @Excel(name = "联系方式")
    private String phone;

    /** 地址 */
    @Excel(name = "地址")
    private String address;

    /** 实施开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实施开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 实施结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实施结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 实际天数 */
    @Excel(name = "实际天数")
    private BigDecimal actualDay;

    /** 紧急程度 */
    @Excel(name = "紧急程度")
    private String taskLevel;

    /** 协同人 */
    @Excel(name = "协同人")
    private String coPerson;

    /** 应收金额 */
    @Excel(name = "应收金额")
    private BigDecimal receivablePayable;

    /** 已收金额 */
    @Excel(name = "已收金额")
    private BigDecimal receivablePaid;

    /** 实施价格 */
    @Excel(name = "实施价格")
    private String taskPrice;

    /** 附件 */
    private String files;

    /** 状态(0 进行中，1 已完成) */
    private String status;

    /** 工单说明 */
    @Excel(name = "工单说明")
    private String illustrate;


    /** 所属负责人 */
    private String userId;

    /** 删除标识 0 未删除 1 删除 */
    @TableLogic
    private String delFlag;

    /** 实施类型（现场，远程） */
    @Excel(name = "实施类型", readConverterExp = "现=场，远程")
    private String taskMode;

    /** 维保项目ID */
    @Excel(name = "维保项目ID")
    private String maintenanceId;


    /** 商机名称 */
    @Excel(name = "商机名称")
    @TableField(exist = false)
    private String orderName;


    /** 客户名称 */
    @Excel(name = "客户名称")
    @TableField(exist = false)
    private String customerName;

    /** 负责人 */
    @Excel(name = "负责人")
    @TableField(exist = false)
    private String userName;

    /** 创建人id */
    private String createUserId;
    /**
     * 备注
     */
    private String remark;
}
